'Función que obtiene tile. Programada por Duefectu y extraída de su libro.
Function ObtenerTile(pantalla As UByte, x As UByte, y As UByte) As UByte
    Dim dir As UByte
    y=y-2
    dir=((y/2)*16)+(x/2)
    RETURN Pantallas(pantalla,dir)
END Function

'Sustituye el tile indicado en la pantalla y posiciones indicadas indicada por otro tile distinto
Sub CambiaTile(pantalla As UByte, x As UByte, y As UByte, nuevo As UBYTE)
    Dim dir As UByte
    dir=((y/2)*16)+(x/2)
    Pantallas(pantalla,dir)=nuevo
END Sub

'Función que cambia de pantalla según el array de Conexiones
Sub CambiaPantalla(direcX As BYTE, direcY As BYTE)
    DIM xx,yy as ubyte
    DIM pantallabro AS UBYTE
    DIM bro AS UBYTE
    DIM oribro AS BYTE
    
    mov=4 'para que pinte parado
    
    bro=(jugador+1) mod 2
    pantallabro=Conex(DatosJ(bro,PUNTPY),DatosJ(bro,PUNTPX))
    DatosJ(jugador,PUNTPX)=DatosJ(jugador,PUNTPX)+direcX     
    DatosJ(jugador,PUNTPY)=DatosJ(jugador,PUNTPY)+direcY     
    pantalla=Conex(DatosJ(jugador,PUNTPY),DatosJ(jugador,PUNTPX))
    pintado=0
    BEEP 0.01,1
    
    imprPant2()
    If direcX=-1     
        x=maxX-1: moviendo=0     
    Else If direcX=1     
        x=0: moviendo=0
    Else If direcY=-1 
        mov=2
        sy=maxY
    Else If direcY=1     
        y=minY
       ' mov=4
        moviendo=1
    End If
        
    IF pantalla=pantallabro     
        xx=DatosJ(bro,PX)
        yy=DatosJ(bro,PY)
        oribro=DatosJ(bro,ORI)
        putCharsOverMode(xx,yy,ANCHO,ALTO,3,@Matt_parado_der_mask(0,0)+abs(oribro-1)*320)     
        putCharsOverMode(xx,yy,ANCHO,ALTO,2,@Matt_parado_der(0,0)+abs(oribro-1)*320)
        paint(xx+(oribro>0),yy+1,1,1,15+(bro*16))     
        If bro=1
            putChars(xx+(oribro>0),yy+1,1,1,@Matt_lars)
        end if
    End If
END Sub


